<html>
				<head>
				<meta http-equiv="content-type" content="text/html; charset=UTF-8">
				</head>
				<body><pre>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.freebsd.org/cgi/man.cgi?query=ACCT&sektion=2&apropos=0&manpath=FreeBSD+6.1-RELEASE">ACCT(2)</a> FreeBSD System Calls Manual <a href="http://www.freebsd.org/cgi/man.cgi?query=ACCT&sektion=2&apropos=0&manpath=FreeBSD+6.1-RELEASE">ACCT(2)</a></pre>
<pre>
<b>名称</b>:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;acct -- 启用／禁止进程信息记录功能</pre>
<pre>
<b>库</b>:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Standard C Library (libc, -lc)</pre>
<pre>
<b>概要</b>:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#include &lt;<font color="dark">unistd.h</font>&gt;

&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color="red">int</font> <font color="blue">acct</font>(<font color="red">const char *</font> <font color="green">file</font>, <font color="red">int</font> <font color="green">mode</font>);</pre>
<pre>
<b>详述</b>:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>acct()</font>系统调用禁止／启用系统记录进程信息。若<font color="green">file</font>为NULL，记录功能将被禁用；
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;若<font color="green">file</font>指向一个<font color=green>存在的</font>文件（以'\0'结尾），则记录功能被启用，
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;正常结束的进程都会在该文件尾添加对应的信息。异常结束是指重启或其它致命的系统问题。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>acct()</font>不能生成那些永远不会结束的进程的信息。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;关于<font color=blue>acct()</font>使用的记录结构及其它相关信息，请参阅&lt;<font color="dark">sys/acct.h</font>&gt;及<a href="http://www.freebsd.org/cgi/man.cgi?query=acct&sektion=5&apropos=0&manpath=FreeBSD+6.1-RELEASE">acct(5)</a>。
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;该系统调用只能由超级用户使用。</pre>
<pre>
<b>笔记</b>:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;当记录文件所在的文件系统空间已满时，记录功能将被自动禁用；当空间足够时，
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;它会被自动启用。自动行为可以通过<a href="http://www.freebsd.org/cgi/man.cgi?query=sysctl&sektion=8&apropos=0&manpath=FreeBSD+6.1-RELEASE">sysctl(8)</a>修改对应的变量来控制：
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kern.acct_chkfreq 指定检查剩余空间大小的频率（秒）
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kern.acct_resume 剩余空间高于该百分比时，将恢复记录功能
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;kern.acct_suspend 剩余空间低于该百分比时，将暂停记录功能</pre>
<pre>
<b>返回值</b>:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;有错误时返回-1。<font color="green">file</font>文件必须存在且只能由超级用户调用。</pre>
<pre>
<b>错误</b>:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>acct()</font>失败时将设置errno为下列错误常量：
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[EPERM]			调用者不是超级用户
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ENOTDIR]		<font color="green">file</font>中的某目录组分不是目录
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ENAMETOOLONG]		<font color="green">file</font>中的某目录组分超过255字节或<font color="green">file</font>超过1023字节
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ENOENT]		文件不存在
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ELOOP]			转换路径时遇到了太多的符号链接
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[EACCES]		<font color="green">file</font>中某目录组分不允许搜索或<font color="green">file</font>不是一个普通文件
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[EROFS]			试图在只读文件系统上请求写操作
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[ETXTBSY]		试图对执行中的文件请求写操作
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[EFAULT]		<font color="green">file</font>参数指向的地址超出了进程的存取空间
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[EIO]			读／写文件系统时遇到了I/O错误</pre>
<pre>
<b>参见</b>:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.freebsd.org/cgi/man.cgi?query=acct&sektion=5&apropos=0&manpath=FreeBSD+6.1-RELEASE">acct(5)</a>, <a href="http://www.freebsd.org/cgi/man.cgi?query=accton&sektion=8&apropos=0&manpath=FreeBSD+6.1-RELEASE">accton(8)</a>, <a href="http://www.freebsd.org/cgi/man.cgi?query=sa&sektion=8&apropos=0&manpath=FreeBSD+6.1-RELEASE">sa(8)</a></pre>
<pre>
<b>历史</b>:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font color=blue>acct()</font>系统调用在AT&T UNIX版本7里首次出现。</pre>
</pre>
</body></html>